<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>正方形</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
    </style>
    <script src="../lib/three.js"></script>
</head>
<body>

<script>
    // 创建场景
    const scene = new THREE.Scene();
    /**
     * 创建相机（透视摄像机）
     * 参数1：视野角度（视野角度就是无论在什么时候，你所能在显示器上看到的场景的范围，它的单位是角度(与弧度区分开)）
     * 参数2: 长宽比
     * 参数3: 近截面
     * 参数4: 远截面
     */
    const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    // 创建渲染器
    const renderer = new THREE.WebGL1Renderer();
    // 设置渲染器大小
    renderer.setSize(window.innerWidth, window.innerHeight);
    // 挂载到页面
    document.body.appendChild(renderer.domElement);

    // 创建立方体
    const geometry = new THREE.BoxGeometry();
    // 添加材料（颜色）
    const material = new THREE.MeshBasicMaterial({
        color: "red"
    });
    // 创建网格（目的：让它在场景中自由移动）
    const cube = new THREE.Mesh(geometry, material);
    // 把网格添加到场景中
    scene.add(cube);
    // 设置相机位置
    camera.position.z = 5;

    /**
     * 渲染场景（渲染循环或者动画循环）
     * 渲染器能够在每次屏幕刷新时对场景进行绘制的循环
     * 在大多数屏幕上，刷新率一般是60次/秒
     */
    const animate = function() {
        requestAnimationFrame(animate);
        cube.rotation.x += 0.01;
        cube.rotation.y += 0.01;
        renderer.render(scene, camera);
    }
    animate();
</script>
</body>
</html>
